#! /bin/sh
# PCP QA Test No. 469
# test for long help text exceeding maximum length
#
# Copyright (c) 1995-2002 Silicon Graphics, Inc.  All Rights Reserved.
#

seq=`basename $0`
echo "QA output created by $seq"

# get standard environment, filters and checks
. ./common.product
. ./common.filter
. ./common.check

status=1	# failure is the default!
trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
rm -f $seq.full

# real QA test starts here
maxlen=84

# assumes metric length (i.e. line with metric name) is less than $maxlen
pminfo -T \
| tee -a $seq.full \
| $PCP_AWK_PROG -v maxlen=$maxlen '
function skip_me(m)
{
    # for OpenMetrics we forward on the underlying domain help text
    return (m == "kernel.percpu.interrupts.line21" || m ~ "^openmetrics")
}
/Help:/ { metric = line; next }
{ 
    if (skip_me(metric)) next
    line = $0
    if (length(line) > maxlen && metric != lastone) {
	printf "[%d] %s, full help text is too long: %d\n", NR, metric, length(line)
	lastone = metric
    }
}
'

# problem with some kernel.percpu.softirqs helptext in CI, snag the files
#
for intr in interrupts softirqs
do
    if [ -f /proc/$intr ]
    then
	echo "--- start /proc/$intr ---" >>$here/$seq.full
	cat /proc/$intr >>$here/$seq.full
	echo "--- end /proc/$intr ---" >>$here/$seq.full
	pminfo -tT kernel.percpu.$intr >>$here/$seq.full
    fi
done

# success, all done
status=0
exit
